home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Extra 1997 #1
/
Amiga Plus Extra 1997 #1.iso
/
programme
/
daten
/
adm
/
arexx
/
adm-arexxmakros.lha
/
Ausdruck
/
DruckeEintrag_15cpi.adm
< prev
next >
Wrap
Text File
|
1996-08-08
|
5KB
|
201 lines
/* $VER: DruckeEintrag.adm 1.4 (19.2.1995)
Druckt einen Eintrag mit allen Daten
(samt ExternInfo-Datei, falls vorhanden)
von Carsten Kullik und Jan Geißler.
1.0 [CaK] 9.6.94 - Erste Version.
1.1 [jan] 13.5.95 - Völlig überarbeitet.
Anpassung an neue Stemvariablen.
1.2 [jan] 15.6.95 - EXTFILE-Parameter bei GETADDRESS
für ADM2.01
1.3 [jan] 25.10.95 - Bei mehreren Telefonnummern war Trennung durch
Komma im Ausdruck fehlerhaft
- Externes File wurde nicht gefunden aufgrund
falschen Parameters bei GetAddress.
- Ausdruck des externen Files konnte aufgrund
falschen OPEN()-Parameters noch nie funktioniert
haben.
1.4 [jan] 19.2.96 - Druckt nun auch Gruppennamen aus
- Kommentierung zumindest ein bißchen verbessert
*/
OPTIONS RESULTS
/* ----- Variablendefinitionen */
file = ""
ok = "OK"
ausgabe = 0 /* Ausgabe Info-File vorsorglich sperren */
LF = '0A'X /* Linefeed*/
/* ----- Rexx-Library öffnen */
IF ~SHOW("L","rexxreqtools.library") THEN
CALL ADDLIB("rexxreqtools.library",0,-30,0)
/* ----- Druckerausgabe öffnen */
IF ~OPEN(drucker,"PRT:","W") THEN DO /*Druckerausgabe vorbereiten*/
ECHO "Kann Druckerausgabe nicht einleiten!"
EXIT
END
/* ----- Adresse holen */
GETADDRESS ADM EXTFILE /* Speicheradresse des akt. Datensatzes */
/* ----- Frage, ob ExtInfo-File ausdrucken, falls existent? */
IF EXISTS(ADM.EXTFILE) THEN DO
Tags = "rt_reqpos=reqpos_centerscr rtez_flags=ezreqf_centertext"
Frage = "Ausdruck des Datensatzes" datei LF ||"mit externer Datei (ExternInfo)?"
ausgabe = rtezrequest(Frage,"Ja|Nein",,Tags)
END
text = "1B"x || "[4w"
CALL Druckzeile
/* ----- Name generieren & drucken */
nam = ""
IF ADM.FULLNAME ~= "" THEN DO
nam = STRIP(ADM.SALUTATION STRIP(ADM.FIRSTNAME STRIP( ADM.TITLE ADM.LASTNAME)))
END
IF ADM.ID ~= "" THEN nam = STRIP(nam " (ID:" ADM.ID || ")")
IF ADM.SORT = "COMPANY" THEN DO
text = ADM.COMPANY
CALL Druckzeile
IF nam ~= "" THEN DO
text = nam
CALL Druckzeile
END
END; ELSE DO
IF nam ~= "" THEN DO
text = nam
CALL Druckzeile
END
text = ADM.COMPANY
CALL Druckzeile
END;
/* ----- Adresse ausdrucken */
text = LF || ADM.ADDRESS1
CALL Druckzeile
text = ADM.ADDRESS2
CALL Druckzeile
text = STRIP(ADM.POSTCODE ADM.CITY)
IF ADM.COUNTRY ~= "" THEN text = text || "," ADM.COUNTRY
CALL Druckzeile
/* ----- Telefonnummern ausdrucken */
text = ""; pp = POS("|",ADM.TELEPHONE)
DO WHILE pp > 0
ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
ADM.TELEPHONE = INSERT(", ",ADM.TELEPHONE,pp-1)
pp = POS("|",ADM.TELEPHONE)
END;
pp = POS(" ",ADM.TELEPHONE)
DO WHILE pp > 0
ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
pp = POS(" ",ADM.TELEPHONE)
END;
pp = POS(" ,",ADM.TELEPHONE)
DO WHILE pp > 0
ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
pp = POS(" ,",ADM.TELEPHONE)
END;
IF ADM.TELEPHONE ~= "" THEN text = text || "Tel.:" ADM.TELEPHONE
CALL Druckzeile
text = ""
IF ADM.FAX ~= "" THEN text = "Fax: " ADM.FAX
CALL Druckzeile
/* ----- Geburtstag */
text = ""
IF ADM.BIRTHDAY ~= "" THEN text = LF || "Geb.:" ADM.BIRTHDAY
CALL Druckzeile
/* ----- Gruppennamen mit ausdrucken */
GETGROUPNAMES stem
text = ""
IF ADM.FLAGS ~= "" THEN text = LF|| text || "In ADM-Gruppen:"
IF POS("A",ADM.FLAGS) > 0 THEN text = text stem.1
IF POS("B",ADM.FLAGS) > 0 THEN text = text stem.2
IF POS("C",ADM.FLAGS) > 0 THEN text = text stem.3
IF POS("D",ADM.FLAGS) > 0 THEN text = text stem.4
IF POS("E",ADM.FLAGS) > 0 THEN text = text stem.5
IF POS("F",ADM.FLAGS) > 0 THEN text = text stem.6
IF POS("G",ADM.FLAGS) > 0 THEN text = text stem.7
IF POS("H",ADM.FLAGS) > 0 THEN text = text stem.8
IF POS("I",ADM.FLAGS) > 0 THEN text = text stem.9
IF POS("J",ADM.FLAGS) > 0 THEN text = text stem.10
CALL Druckzeile
/* ----- Bemerkungsfeld */
text = ""
IF ADM.REMARK1 ~= "" THEN text = LF || ADM.REMARK1
CALL Druckzeile
/* ----- ExternInfo ausdrucken! */
IF ausgabe THEN DO /*Wenn Ausgabe erwuenscht,*/
text = LF /*1 Linefeed einfuegen und*/
CALL Druckzeile
IF OPEN(datei,ADM.EXTFILE,"R") THEN DO /*das externe Info-File oeffnen*/
DO WHILE ~EOF(datei) /*Dateiende erreicht? Nein,*/
text = READLN(datei) /*Zeilen einlesen und an*/
call Druckzeile
/*ok = WRITELN(drucker,text) Drucker ausgeben*/
END
ok = CLOSE(datei)
END
ELSE SAY "Kann Externe Datei nicht öffnen!"
END
/* ----- Druckerausgabe schließen */
ok = CLOSE(drucker)
EXIT
/* ===== PROGRAMMENDE ============= */
/* ----- Unterroutine: Zeile drucken */
Druckzeile:
text = STRIP(text,"T"," ") /*Leerzeichen am Ende entfernen*/
text = STRIP(text,"T",",") /*Kommas am Ende entfernen*/
IF text ~= "" THEN /*Wenn Zeile nicht leer...*/
ok = WRITELN(drucker,text) /*Zeile ausgeben*/
RETURN